package servlets;

import java.io.IOException;
import java.net.URLEncoder;
import java.text.ParseException;
import java.util.Calendar;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import utilities.DateHelper;
import domein.Klant;
import domein.ParkeerPlaats;
import domein.ParkeerTerrein;

/**
 * Servlet implementation class RegisterServlet
 */
@WebServlet(name="ReserveerServlet", urlPatterns="/klant/Reserveer.do")
public class ReserveerServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;

	/**
	 * Default constructor.
	 */
	public ReserveerServlet() {
		super();
	}

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse
	 *      response)
	 */

	protected void doGet(HttpServletRequest request,
			HttpServletResponse response) throws ServletException, IOException {
		RequestDispatcher rd = null;
		if (request.getParameter("parkeerplaats") == null) {
			response.sendRedirect(request.getContextPath() + "/klant/parkeerplaats-reserveren.jsp?error=Geen+parkeerplaats+geselecteerd");
			return;
		}
		Object obj = request.getSession().getAttribute("user");
		if(obj == null){
			throw new NullPointerException("Je bent niet ingelogd");
		}
			Klant klant = (Klant)obj;		

		try {
			String parkeerplaatsNaam = request.getParameter("parkeerplaats");
			Calendar startTijd = DateHelper.converteerStringNaarDatum(request.getParameter("van"), request.getParameter("van-tijd"));
			Calendar eindTijd = DateHelper.converteerStringNaarDatum(request.getParameter("tot"), request.getParameter("tot-tijd"));
			ParkeerPlaats p = ParkeerTerrein.getParkeerplaats(parkeerplaatsNaam);
			System.out.println(startTijd);
			System.out.println(eindTijd);
			System.out.println(p);
			System.out.println(klant);
			p.setBezet(klant, startTijd, eindTijd);
			response.sendRedirect("parkeerplaats-reserveren.jsp?succesvolres=1");
			return;							
		} catch (IllegalArgumentException | ParseException e) {
			response.sendRedirect("parkeerplaats-reserveren.jsp?error="
					+ URLEncoder.encode(e.toString(), "UTF-8"));
			return;
		}

	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse
	 *      response)
	 */
	protected void doPost(HttpServletRequest request,
			HttpServletResponse response) throws ServletException, IOException {

	}

}
